package Queue;

import java.util.LinkedList;
import java.util.Queue;
/**
 * 队列
 * - add() :添加元素，失败时抛出异常
 * - offer() :添加元素
 * - remove() :移除元素，失败时抛出异常
 * - poll()：移除元素
 * - element()：拿出队首元素，但不移除，失败时抛出异常
 * - peek()：拿出队首元素，但不移除
 */
public class queuetest {
    public static void main(String[] args) {
        //LinkedList提供了方法支持队列的行为，并且它实现了Queue接口，因此LinkedList可以用作Queue的一种实现。
        Queue<Integer> queue = new LinkedList<>();
        queue.add(1);
        System.out.println("使用add添加整形元素1后，使用element查看队首"+queue.element());
        queue.offer(2);
        System.out.println("使用offer添加整形元素2，使用peek查看队首"+queue.peek());
        queue.remove();
        System.out.println("使用remove移除队首元素后，使用peek查看队首"+queue.peek());
        queue.poll();

        //此时队列已经为空，再试试出队操作
        queue.poll();//虽然队空但不会抛出异常

        //查看队首元素
        //虽然队空但不会抛出异常
        System.out.println("第二次使用poll移除队首元素后，使用peek查看队首"+queue.peek());

        //失败，抛出异常
        //System.out.println("第二次使用poll移除队首元素后，使用element查看队首"+queue.element());


    }
}
